import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Scanner;

//求一个字符串的子序列，要求不重复
public class Demo3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str1 = sc.next();
        char[] str = str1.toCharArray();
        HashSet<String> set = new HashSet<>();
        List<String> list = new ArrayList<>();
        String path = "";
        process(str, 0, set, path);

        //哈希输出
        //System.out.print(set+" ");
        //链表输出
        for (String cur : set) {
            list.add(cur);
        }
        System.out.print(list + " ");
    }

    //str就是字符串本身，固定不变的
    //index是当前位置  判断要or不要
    //当index来到str中的终止位置，存放路径的
    //path 路径
    private static void process(char[] str, int index, HashSet<String> set, String path) {
        if (index == str.length) {
            set.add(path);
            return;
        }

        //表示不要当前字符
        String no = path;
        process(str, index + 1, set, no);

        //要当前字符
        String yes = path + String.valueOf(str[index]);
        process(str, index + 1, set, yes);

    }
}
